package Text2;

import java.util.Scanner;

public class Main {
//    实现一个双链表，双链表初始为空，支持 5种操作：
//    1.在最左侧插入一个数；
//    2.在最右侧插入一个数；
//    3.将第 k个插入的数删除；
//    4.在第 k个插入的数左侧插入一个数；
//    5.在第 k个插入的数右侧插入一个数

    static int[] e;
    static int[] l;
    static int[] r;
    static int idx;

    public static void init() {
        e = new int[100010];
        l = new int[100010];
        r = new int[100010];
        r[0]=1;
        l[1] = 0;
        idx = 2;
    }

    //删除第k位插入的数
    public static void remove(int k) {
        r[l[k]] = r[k];
        l[r[k]] = l[k];
    }

    //这是在第k位数后面插入一个数x
    public static void add_all(int k, int x) {
        e[idx] = x;
        l[idx] = k;
        r[idx] = r[k];
        l[r[k]] = idx;
        r[k] = idx;
        idx++;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        init();
        while (m-- > 0) {
            String s = scanner.next();
            if (s.equals("L")) {
                int x = scanner.nextInt();
                add_all(0, x);
            } else if (s.equals("R")) {
                int x = scanner.nextInt();
                add_all(l[1], x);
            } else if (s.equals("D")) {
                int k = scanner.nextInt();
                remove(k+1);
            } else if (s.equals("IR")) {
                int k = scanner.nextInt();
                int x = scanner.nextInt();
                add_all(k+1,x);
            } else {
                int k = scanner.nextInt();
                int x = scanner.nextInt();
                add_all(l[k+1],x);
            }
        }
        for (int i = r[0]; i!=1 ;i=r[i]) {
            System.out.print(e[i]+" ");
        }
    }

}
